home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).do / ALIGN.bas < prev    next >
BASIC Source File  |  1996-12-24  |  2KB  |  77 lines

  1. 100  REM  -------------------
  2. 110  REM  ALIGN DEMONSTRATION
  3. 120  REM  FOR MONITOR OUTPUT
  4. 130  REM  BY ERIC MARKS
  5. 140  REM  -------------------
  6. 150  DIM N(10)
  7. 160  DIM N$(10)
  8. 170  HOME : VTAB 10
  9. 180  PRINT "UNALIGNED"; TAB( 27);"ALIGNED": PRINT 
  10. 190  REM  
  11. 200  REM  READ NUMBERS TO BE
  12. 210  REM  ALIGNED INTO ARRAY
  13. 220  REM       N(X)
  14. 230  REM  
  15. 240  FOR X = 1 TO 10
  16. 250  READ N(X)
  17. 260  NEXT X
  18. 270  REM 
  19. 280  REM  
  20. 290  REM  PRINT THE UNALIGNED 
  21. 300  REM  NUMBERS AT THE LEFT
  22. 310  REM  MARGIN. THEN
  23. 320  REM  CONVERT NUMBERS TO
  24. 330  REM  THEIR STR$ EQUIV-
  25. 340  REM  ALENT, AND PASS THEM
  26. 350  REM  THROUGH THE ALIGN
  27. 360  REM  SUBROUTINE.
  28. 370  REM 
  29. 380  REM  THE ALIGN SUBROUTINE
  30. 390  REM    IS AT STATEMENT 730.
  31. 400  REM  IT COUNTS THE NUMBER
  32. 410  REM  OF DIGITS BEFORE THE
  33. 420  REM  DECIMAL POINT (AND
  34. 430  REM  ALLOWS FOR THE CASE
  35. 440  REM  WHERE THERE IS NO
  36. 450  REM  DECIMAL POINT).
  37. 460  REM 
  38. 470  REM  THE NUMBER OF DIGITS
  39. 480  REM  IS SAVED IN VARIABLE
  40. 490  REM  -I-. TAB(30) IS WHERE
  41. 500  REM   THE ALIGNED NUMBER'S
  42. 510  REM  DECIMAL POINT WILL
  43. 520  REM  BE PRINTED ON THE
  44. 530  REM  MONITOR SCREEN.  SO
  45. 540  REM    IN STATEMENT 670, THE
  46. 550  REM  NUMBER IS PRINTED AT
  47. 560  REM  TAB(30-I). THIS HAS
  48. 570  REM  THE EFFECT OF 'BACK-
  49. 580  REM   SPACING' BY -I- PRINT
  50. 590  REM  POSITIONS FROM THE
  51. 600  REM  CHOSEN TAB SETTING.
  52. 610  REM 
  53. 620  REM 
  54. 630  FOR X = 1 TO 10
  55. 640  PRINT N(X);
  56. 650 N$(X) =  STR$(N(X))
  57. 660  GOSUB 730
  58. 670  PRINT  TAB( 30 -I);N(X)
  59. 680  NEXT X
  60. 690  END 
  61. 700  REM  -----
  62. 710  REM  ALIGN
  63. 720  REM  -----
  64. 730  LET I = 0
  65. 740  LET I = I +1
  66. 750  IF I =  LEN(N$(X))  AND  MID$ (N$(S),I,1) < >"."  THEN I = I +1: GOTO 770
  67. 760  IF  MID$ (N$(X),I,1) < >"."  THEN 740
  68. 770  RETURN 
  69. 780  REM 
  70. 790  REM 
  71. 800  REM  ----------------------
  72. 810  REM  DATA FOR DEMONSTRATION
  73. 820  REM  ----------------------
  74. 830  DATA  25, 356.002153,-17.01525
  75. 840  DATA  3610.0013,4.177,9266
  76. 850  DATA  35.0101,-3.101,67.9199
  77. 860  DATA  3.25E-10